package com.xuzao.developer.base.criteria;

import java.util.ArrayList;
import java.util.List;


/**
 * @description 
 * @author xuzao
 * @date 2019-08-22 15:47:08
 **/
public class SysUserCriteria {

	protected String orderByClause;

	protected boolean distinct;

	protected List<Criteria> oredCriteria;

	private int limitStart = -1;

	private int limitEnd = -1;

	public SysUserCriteria() {
	oredCriteria = new ArrayList<Criteria>();
	}

	public void setOrderByClause(String orderByClause) {
		this.orderByClause = orderByClause;
	}
	public String getOrderByClause() {
		return orderByClause;
	}

	public void setDistinct ( boolean distinct){
		this.distinct = distinct;
 	}
	public boolean isDistinct () {
		return distinct;
	}

	public List<Criteria> getOredCriteria () {
		return oredCriteria;
	}

	public void or (Criteria criteria){
		oredCriteria.add(criteria);
	}

	public Criteria or () {
		Criteria criteria = createCriteriaInternal();
		oredCriteria.add(criteria);
		return criteria;
	}

	public Criteria createCriteria () {
		Criteria criteria = createCriteriaInternal();
		if (oredCriteria.size() == 0) {
		oredCriteria.add(criteria);
	}
		return criteria;
	}

	protected Criteria createCriteriaInternal () {
		Criteria criteria = new Criteria();
		return criteria;
	}
	public void clear () {
		oredCriteria.clear();
		orderByClause = null;
		distinct = false;
	}

	public void setLimitStart ( int limitStart){
		this.limitStart = limitStart;
	}

	public int getLimitStart () {
		return limitStart;
	}

	public void setLimitEnd (int limitEnd){
		this.limitEnd = limitEnd;
	}

	public int getLimitEnd () {
		return limitEnd;
	}

	protected abstract static class GeneratedCriteria {
		protected List<Criterion> criteria;
		protected GeneratedCriteria() {
		super();
		criteria = new ArrayList<Criterion>();
	}

	public boolean isValid() {
		return criteria.size() > 0;
	}

	public List<Criterion> getAllCriteria() {
		return criteria;
	}

	public List<Criterion> getCriteria() {
		return criteria;
	}
	protected void addCriterion(String condition) {
		if (condition == null) {
			throw new RuntimeException("Value for condition cannot be null");
	}
		criteria.add(new Criterion(condition));
	}
	protected void addCriterion (String condition, Object value, String property){
		if (value == null) {
			throw new RuntimeException("Value for " + property + " cannot be null");
	}
		criteria.add(new Criterion(condition, value));
	}

	protected void addCriterion (String condition, Object value1, Object value2, String property){
		if (value1 == null || value2 == null) {
			throw new RuntimeException("Between values for " + property + " cannot be null");
	}

		criteria.add(new Criterion(condition, value1, value2));
	}

	public Criteria andIdIsNull () {
		addCriterion("id is null");
		return (Criteria) this;
	}

	public Criteria andIdIsNotNull () {
		addCriterion("id is not null");
		return (Criteria) this;
	}

	public Criteria andIdEqualTo (java.lang.Long value){
		addCriterion("id =", value, "id");
		return (Criteria) this;
	}

	public Criteria andIdNotEqualTo (java.lang.Long value){
		addCriterion("id <>", value, "id");
		return (Criteria) this;
	}

	public Criteria andIdGreaterThan (java.lang.Long value){
		addCriterion("id >", value, "id");
		return (Criteria) this;
	}

	public Criteria andIdGreaterThanOrEqualTo (java.lang.Long value){
		addCriterion("id >=", value, "id");
		return (Criteria) this;
	}

	public Criteria andIdLessThan (java.lang.Long value){
		addCriterion("id <", value, "id");
		return (Criteria) this;
	}

	public Criteria andIdLessThanOrEqualTo (java.lang.Long value){
		addCriterion("id <=", value, "id");
		return (Criteria) this;
	}

	public Criteria andIdIn (List < java.lang.Long > values) {

		addCriterion("id in", values, "id");
		return (Criteria) this;
	}

	public Criteria andIdNotIn (List < java.lang.Long > values) {
		addCriterion("id not in", values, "id");
		return (Criteria) this;
	}

	public Criteria andIdBetween (java.lang.Long value1, java.lang.Long value2){
		addCriterion("id between", value1, value2, "id");
		return (Criteria) this;
	}

	public Criteria andIdNotBetween (java.lang.Long value1, java.lang.Long value2){
		addCriterion("id not between", value1, value2, "id");
		return (Criteria) this;
	}

	public Criteria andUserNameIsNull () {
		addCriterion("user_name is null");
		return (Criteria) this;
	}

	public Criteria andUserNameIsNotNull () {
		addCriterion("user_name is not null");
		return (Criteria) this;
	}

	public Criteria andUserNameEqualTo (java.lang.String value){
		addCriterion("user_name =", value, "user_name");
		return (Criteria) this;
	}

	public Criteria andUserNameNotEqualTo (java.lang.String value){
		addCriterion("user_name <>", value, "user_name");
		return (Criteria) this;
	}

	public Criteria andUserNameGreaterThan (java.lang.String value){
		addCriterion("user_name >", value, "user_name");
		return (Criteria) this;
	}

	public Criteria andUserNameGreaterThanOrEqualTo (java.lang.String value){
		addCriterion("user_name >=", value, "user_name");
		return (Criteria) this;
	}

	public Criteria andUserNameLessThan (java.lang.String value){
		addCriterion("user_name <", value, "user_name");
		return (Criteria) this;
	}

	public Criteria andUserNameLessThanOrEqualTo (java.lang.String value){
		addCriterion("user_name <=", value, "user_name");
		return (Criteria) this;
	}

	public Criteria andUserNameIn (List < java.lang.String > values) {

		addCriterion("user_name in", values, "user_name");
		return (Criteria) this;
	}

	public Criteria andUserNameNotIn (List < java.lang.String > values) {
		addCriterion("id not in", values, "user_name");
		return (Criteria) this;
	}

	public Criteria andUserNameBetween (java.lang.String value1, java.lang.String value2){
		addCriterion("user_name between", value1, value2, "user_name");
		return (Criteria) this;
	}

	public Criteria andUserNameNotBetween (java.lang.String value1, java.lang.String value2){
		addCriterion("user_name not between", value1, value2, "user_name");
		return (Criteria) this;
	}

	public Criteria andUserNameLike(java.lang.String value) {
		addCriterion("user_name like", value, "user_name");
		return (Criteria) this;
	}

	public Criteria andUserNameNotLike(java.lang.String value) {
		addCriterion("user_name not like", value, "user_name");
		return (Criteria) this;
	}
	public Criteria andRealNameIsNull () {
		addCriterion("real_name is null");
		return (Criteria) this;
	}

	public Criteria andRealNameIsNotNull () {
		addCriterion("real_name is not null");
		return (Criteria) this;
	}

	public Criteria andRealNameEqualTo (java.lang.String value){
		addCriterion("real_name =", value, "real_name");
		return (Criteria) this;
	}

	public Criteria andRealNameNotEqualTo (java.lang.String value){
		addCriterion("real_name <>", value, "real_name");
		return (Criteria) this;
	}

	public Criteria andRealNameGreaterThan (java.lang.String value){
		addCriterion("real_name >", value, "real_name");
		return (Criteria) this;
	}

	public Criteria andRealNameGreaterThanOrEqualTo (java.lang.String value){
		addCriterion("real_name >=", value, "real_name");
		return (Criteria) this;
	}

	public Criteria andRealNameLessThan (java.lang.String value){
		addCriterion("real_name <", value, "real_name");
		return (Criteria) this;
	}

	public Criteria andRealNameLessThanOrEqualTo (java.lang.String value){
		addCriterion("real_name <=", value, "real_name");
		return (Criteria) this;
	}

	public Criteria andRealNameIn (List < java.lang.String > values) {

		addCriterion("real_name in", values, "real_name");
		return (Criteria) this;
	}

	public Criteria andRealNameNotIn (List < java.lang.String > values) {
		addCriterion("id not in", values, "real_name");
		return (Criteria) this;
	}

	public Criteria andRealNameBetween (java.lang.String value1, java.lang.String value2){
		addCriterion("real_name between", value1, value2, "real_name");
		return (Criteria) this;
	}

	public Criteria andRealNameNotBetween (java.lang.String value1, java.lang.String value2){
		addCriterion("real_name not between", value1, value2, "real_name");
		return (Criteria) this;
	}

	public Criteria andRealNameLike(java.lang.String value) {
		addCriterion("real_name like", value, "real_name");
		return (Criteria) this;
	}

	public Criteria andRealNameNotLike(java.lang.String value) {
		addCriterion("real_name not like", value, "real_name");
		return (Criteria) this;
	}
	public Criteria andPassWordIsNull () {
		addCriterion("pass_word is null");
		return (Criteria) this;
	}

	public Criteria andPassWordIsNotNull () {
		addCriterion("pass_word is not null");
		return (Criteria) this;
	}

	public Criteria andPassWordEqualTo (java.lang.String value){
		addCriterion("pass_word =", value, "pass_word");
		return (Criteria) this;
	}

	public Criteria andPassWordNotEqualTo (java.lang.String value){
		addCriterion("pass_word <>", value, "pass_word");
		return (Criteria) this;
	}

	public Criteria andPassWordGreaterThan (java.lang.String value){
		addCriterion("pass_word >", value, "pass_word");
		return (Criteria) this;
	}

	public Criteria andPassWordGreaterThanOrEqualTo (java.lang.String value){
		addCriterion("pass_word >=", value, "pass_word");
		return (Criteria) this;
	}

	public Criteria andPassWordLessThan (java.lang.String value){
		addCriterion("pass_word <", value, "pass_word");
		return (Criteria) this;
	}

	public Criteria andPassWordLessThanOrEqualTo (java.lang.String value){
		addCriterion("pass_word <=", value, "pass_word");
		return (Criteria) this;
	}

	public Criteria andPassWordIn (List < java.lang.String > values) {

		addCriterion("pass_word in", values, "pass_word");
		return (Criteria) this;
	}

	public Criteria andPassWordNotIn (List < java.lang.String > values) {
		addCriterion("id not in", values, "pass_word");
		return (Criteria) this;
	}

	public Criteria andPassWordBetween (java.lang.String value1, java.lang.String value2){
		addCriterion("pass_word between", value1, value2, "pass_word");
		return (Criteria) this;
	}

	public Criteria andPassWordNotBetween (java.lang.String value1, java.lang.String value2){
		addCriterion("pass_word not between", value1, value2, "pass_word");
		return (Criteria) this;
	}

	public Criteria andPassWordLike(java.lang.String value) {
		addCriterion("pass_word like", value, "pass_word");
		return (Criteria) this;
	}

	public Criteria andPassWordNotLike(java.lang.String value) {
		addCriterion("pass_word not like", value, "pass_word");
		return (Criteria) this;
	}
	public Criteria andWorkTypeIsNull () {
		addCriterion("work_type is null");
		return (Criteria) this;
	}

	public Criteria andWorkTypeIsNotNull () {
		addCriterion("work_type is not null");
		return (Criteria) this;
	}

	public Criteria andWorkTypeEqualTo (java.lang.Integer value){
		addCriterion("work_type =", value, "work_type");
		return (Criteria) this;
	}

	public Criteria andWorkTypeNotEqualTo (java.lang.Integer value){
		addCriterion("work_type <>", value, "work_type");
		return (Criteria) this;
	}

	public Criteria andWorkTypeGreaterThan (java.lang.Integer value){
		addCriterion("work_type >", value, "work_type");
		return (Criteria) this;
	}

	public Criteria andWorkTypeGreaterThanOrEqualTo (java.lang.Integer value){
		addCriterion("work_type >=", value, "work_type");
		return (Criteria) this;
	}

	public Criteria andWorkTypeLessThan (java.lang.Integer value){
		addCriterion("work_type <", value, "work_type");
		return (Criteria) this;
	}

	public Criteria andWorkTypeLessThanOrEqualTo (java.lang.Integer value){
		addCriterion("work_type <=", value, "work_type");
		return (Criteria) this;
	}

	public Criteria andWorkTypeIn (List < java.lang.Integer > values) {

		addCriterion("work_type in", values, "work_type");
		return (Criteria) this;
	}

	public Criteria andWorkTypeNotIn (List < java.lang.Integer > values) {
		addCriterion("id not in", values, "work_type");
		return (Criteria) this;
	}

	public Criteria andWorkTypeBetween (java.lang.Integer value1, java.lang.Integer value2){
		addCriterion("work_type between", value1, value2, "work_type");
		return (Criteria) this;
	}

	public Criteria andWorkTypeNotBetween (java.lang.Integer value1, java.lang.Integer value2){
		addCriterion("work_type not between", value1, value2, "work_type");
		return (Criteria) this;
	}

	public Criteria andRoleIdIsNull () {
		addCriterion("role_id is null");
		return (Criteria) this;
	}

	public Criteria andRoleIdIsNotNull () {
		addCriterion("role_id is not null");
		return (Criteria) this;
	}

	public Criteria andRoleIdEqualTo (java.lang.Long value){
		addCriterion("role_id =", value, "role_id");
		return (Criteria) this;
	}

	public Criteria andRoleIdNotEqualTo (java.lang.Long value){
		addCriterion("role_id <>", value, "role_id");
		return (Criteria) this;
	}

	public Criteria andRoleIdGreaterThan (java.lang.Long value){
		addCriterion("role_id >", value, "role_id");
		return (Criteria) this;
	}

	public Criteria andRoleIdGreaterThanOrEqualTo (java.lang.Long value){
		addCriterion("role_id >=", value, "role_id");
		return (Criteria) this;
	}

	public Criteria andRoleIdLessThan (java.lang.Long value){
		addCriterion("role_id <", value, "role_id");
		return (Criteria) this;
	}

	public Criteria andRoleIdLessThanOrEqualTo (java.lang.Long value){
		addCriterion("role_id <=", value, "role_id");
		return (Criteria) this;
	}

	public Criteria andRoleIdIn (List < java.lang.Long > values) {

		addCriterion("role_id in", values, "role_id");
		return (Criteria) this;
	}

	public Criteria andRoleIdNotIn (List < java.lang.Long > values) {
		addCriterion("id not in", values, "role_id");
		return (Criteria) this;
	}

	public Criteria andRoleIdBetween (java.lang.Long value1, java.lang.Long value2){
		addCriterion("role_id between", value1, value2, "role_id");
		return (Criteria) this;
	}

	public Criteria andRoleIdNotBetween (java.lang.Long value1, java.lang.Long value2){
		addCriterion("role_id not between", value1, value2, "role_id");
		return (Criteria) this;
	}

	public Criteria andCreateTimeIsNull () {
		addCriterion("create_time is null");
		return (Criteria) this;
	}

	public Criteria andCreateTimeIsNotNull () {
		addCriterion("create_time is not null");
		return (Criteria) this;
	}

	public Criteria andCreateTimeEqualTo (java.util.Date value){
		addCriterion("create_time =", value, "create_time");
		return (Criteria) this;
	}

	public Criteria andCreateTimeNotEqualTo (java.util.Date value){
		addCriterion("create_time <>", value, "create_time");
		return (Criteria) this;
	}

	public Criteria andCreateTimeGreaterThan (java.util.Date value){
		addCriterion("create_time >", value, "create_time");
		return (Criteria) this;
	}

	public Criteria andCreateTimeGreaterThanOrEqualTo (java.util.Date value){
		addCriterion("create_time >=", value, "create_time");
		return (Criteria) this;
	}

	public Criteria andCreateTimeLessThan (java.util.Date value){
		addCriterion("create_time <", value, "create_time");
		return (Criteria) this;
	}

	public Criteria andCreateTimeLessThanOrEqualTo (java.util.Date value){
		addCriterion("create_time <=", value, "create_time");
		return (Criteria) this;
	}

	public Criteria andCreateTimeIn (List < java.util.Date > values) {

		addCriterion("create_time in", values, "create_time");
		return (Criteria) this;
	}

	public Criteria andCreateTimeNotIn (List < java.util.Date > values) {
		addCriterion("id not in", values, "create_time");
		return (Criteria) this;
	}

	public Criteria andCreateTimeBetween (java.util.Date value1, java.util.Date value2){
		addCriterion("create_time between", value1, value2, "create_time");
		return (Criteria) this;
	}

	public Criteria andCreateTimeNotBetween (java.util.Date value1, java.util.Date value2){
		addCriterion("create_time not between", value1, value2, "create_time");
		return (Criteria) this;
	}

	public Criteria andUpdateTimeIsNull () {
		addCriterion("update_time is null");
		return (Criteria) this;
	}

	public Criteria andUpdateTimeIsNotNull () {
		addCriterion("update_time is not null");
		return (Criteria) this;
	}

	public Criteria andUpdateTimeEqualTo (java.util.Date value){
		addCriterion("update_time =", value, "update_time");
		return (Criteria) this;
	}

	public Criteria andUpdateTimeNotEqualTo (java.util.Date value){
		addCriterion("update_time <>", value, "update_time");
		return (Criteria) this;
	}

	public Criteria andUpdateTimeGreaterThan (java.util.Date value){
		addCriterion("update_time >", value, "update_time");
		return (Criteria) this;
	}

	public Criteria andUpdateTimeGreaterThanOrEqualTo (java.util.Date value){
		addCriterion("update_time >=", value, "update_time");
		return (Criteria) this;
	}

	public Criteria andUpdateTimeLessThan (java.util.Date value){
		addCriterion("update_time <", value, "update_time");
		return (Criteria) this;
	}

	public Criteria andUpdateTimeLessThanOrEqualTo (java.util.Date value){
		addCriterion("update_time <=", value, "update_time");
		return (Criteria) this;
	}

	public Criteria andUpdateTimeIn (List < java.util.Date > values) {

		addCriterion("update_time in", values, "update_time");
		return (Criteria) this;
	}

	public Criteria andUpdateTimeNotIn (List < java.util.Date > values) {
		addCriterion("id not in", values, "update_time");
		return (Criteria) this;
	}

	public Criteria andUpdateTimeBetween (java.util.Date value1, java.util.Date value2){
		addCriterion("update_time between", value1, value2, "update_time");
		return (Criteria) this;
	}

	public Criteria andUpdateTimeNotBetween (java.util.Date value1, java.util.Date value2){
		addCriterion("update_time not between", value1, value2, "update_time");
		return (Criteria) this;
	}


	}

	public static class Criteria extends GeneratedCriteria {

	protected Criteria() {
		super();
		}
	}
	public static class Criterion {
	private String condition;
	private Object value;
	private Object secondValue;
	private boolean noValue;
	private boolean singleValue;
	private boolean betweenValue;
	private boolean listValue;
	private String typeHandler;
	public String getCondition() {

		return condition;
	}

	public Object getValue() {
		return value;
	}

	public Object getSecondValue() {
		return secondValue;
	}

	public boolean isNoValue() {
		return noValue;
	}

	public boolean isSingleValue() {
		return singleValue;
	}

	public boolean isBetweenValue() {
		return betweenValue;
	}

	public boolean isListValue() {
		return listValue;
	}

	public String getTypeHandler() {
		return typeHandler;
	}

	protected Criterion(String condition) {
		super();
		this.condition = condition;
		this.typeHandler = null;
		this.noValue = true;
	}

	protected Criterion(String condition, Object value, String typeHandler) {
		super();
		this.condition = condition;
		this.value = value;
		this.typeHandler = typeHandler;
		if(value instanceof List<?>) {
			this.listValue = true;
		} else {
			this.singleValue = true;
		}
	}

	protected Criterion(String condition, Object value) {
		this(condition, value, null);
	}

	protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
		super();
		this.condition = condition;
		this.value = value;
		this.secondValue = secondValue;
		this.typeHandler = typeHandler;
		this.betweenValue = true;
	}

	protected Criterion(String condition, Object value, Object secondValue) {
		this(condition, value, secondValue, null);
			}
		}
	}
